import java.io.UnsupportedEncodingException;

public class EncodeDemo
{

	public static void main(String[] args) throws UnsupportedEncodingException
	{
		String string = "中国ABC";

		// 项目默认是UTF-8编码,中文占3个字节，英文占一个字节
		byte[] byte1 = string.getBytes();
		for (byte b : byte1)
		{
			// 把字节(8位)转化成int（4字节，32位）---（前24位全是0），以16进制显示
			// &0xff，去掉前24个0，留下后8位
			System.out.print(Integer.toHexString(b & 0xff) + " "); 
		}

		System.out.println("\n----------------------------------------");

		// 设置编码格式为GBK，中文占3个字节，英文占一个字节
		byte[] byte2 = string.getBytes("gbk");
		for (byte b : byte2)
		{
			// 把字节(8位)转化成int（4字节，32位）---（前24位全是0），以16进制显示
			// &0xff，去掉前24个0，留下后8位
			System.out.print(Integer.toHexString(b & 0xff) + " "); 
		}

		System.out.println("\n----------------------------------------");

		// JAVA是双字节编码utf-16be，中文占用2个字节，英文也是2个字节
		byte[] byte3 = string.getBytes("utf-16be");
		for (byte b : byte3)
		{
			// 把字节(8位)转化成int（4字节，32位）---（前24位全是0），以16进制显示
			// &0xff，去掉前24个0，留下后8位
			System.out.print(Integer.toHexString(b & 0xff) + " "); 
		}

		/**
		 * 1、当你的字节序列是某种编码时，这个时候，想把字节序列变成字符串
		 * 也需要用这种编码格式，否则会出现乱码
		 * 2、文本文件就是字节序列，可以是任意编码的字节序列
		 * 
		 */
	}

}
